Skip to main content

第03章 Message

第3章 Message

一、同步客户端-服务器模型缺点

  • 最早的通信全部都是同步的的通信,比如系统A和系统B之间通信,需要两个系统提供API
  • 同步的通信需要客户端一直等待相应,需要等很久可能
  • 当需要通讯的模块多了之后,不然四五个通讯系统的时候都要交互的时候,比如A系统要对B、C、D都开发一套API,这很麻烦。API的数量会大量增加
  • 紧耦合,一旦有一个地方的函数参数或者返回类型要修改,大量的代码都需要修改,非常麻烦。
  • 假如有一个系统暂时挂掉了,能不能反复多尝试几次呢,传统的方法不行。
  • 通讯不可靠,过于依赖请求响应的模式。
  • 没有缓冲区。

二、异步的优点

  • 在所有的系统里面有一个通讯的媒介,系统不直接交互,而是通过中介来通讯。
  • 系统之间约定统一的通讯模式,topic相当于信箱,每次通讯的时候就把信息往信箱里面发,然后另外一个系统可能会监听这个信箱,一旦有新的内容接受,就开始处理
  • 站在Kafka消息中间件的角度,所有系统都是对等的,不存在客户端-服务器的模型,所有的系统都可以收发信息。
  • 实现解耦,哪怕有一个系统崩了,消息中间件会多次发送